package views;
/**
* main window. The GUI. Note that the input is going to be an array of integers
* e.g.: p1 = 2 0 -1 4 (meaning p1 = 2x^3 - x + 4)
* some functions (e.g. evaluateAt(p, x)) work properly only if x is provided
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Window extends JFrame {
private JTextField input1 = new JTextField(100);
private JTextField input2 = new JTextField(100);
private JTextField inputX = new JTextField(100);
private JTextField output = new JTextField(100);
private JPanel panelLeft = new JPanel();
private JPanel panelRight = new JPanel();
private JButton add = new JButton("+");
private JButton sub = new JButton("-");
private JButton mul = new JButton("*");
private JButton div = new JButton("/");
private JButton diff1 = new JButton("p1'");
private JButton diff2 = new JButton("p2'");
private JButton int1 = new JButton("int(p1)");
private JButton int2 = new JButton("int(p2)");
private JButton evalP1 = new JButton("P1(x)");
private JButton evalP2 = new JButton("P2(x)");
private JButton rootP1 = new JButton("P1=0 arround x");
private JButton rootP2 = new JButton("P2=0 arround x");
private JButton graphP1 = new JButton("graph p1");
private JButton graphP2 = new JButton("graph p2");
public Window(String title) {
setTitle(title);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BoxLayout(getContentPane(), BoxLayout.X_AXIS));
setSize(750, 200);
JLabel labelP1 = new JLabel(" p1");
JLabel labelP2 = new JLabel(" p2");
JLabel result = new JLabel(" result");
JLabel labelX = new JLabel(" x");
panelLeft.setLayout(new GridLayout(4, 2));
panelLeft.add(labelP1);
panelLeft.add(input1);
panelLeft.add(labelP2);
panelLeft.add(input2);
panelLeft.add(labelX);
panelLeft.add(inputX);
panelLeft.add(result);
panelLeft.add(output);
add(panelLeft);
panelRight.setLayout(new GridLayout(4, 4));
panelRight.add(add);
panelRight.add(sub);
panelRight.add(mul);
panelRight.add(div);
panelRight.add(diff1);
panelRight.add(diff2);
panelRight.add(int1);
panelRight.add(int2);
panelRight.add(evalP1);
panelRight.add(evalP2);
panelRight.add(rootP1);
panelRight.add(rootP2);
panelRight.add(graphP1);
panelRight.add(graphP2);
add(panelRight);
setVisible(true);
}
public void setAddButtonListener(ActionListener a) {
add.addActionListener(a);
}
public void setSubButtonListener(ActionListener a) {
sub.addActionListener(a);
}
public void setMulButtonListener(ActionListener a) {
mul.addActionListener(a);
}
public void setDivButtonListener(ActionListener a) {
div.addActionListener(a);
}
public void setDiff1ButtonListener(ActionListener a) {
diff1.addActionListener(a);
}
public void setDiff2ButtonListener(ActionListener a) {
diff2.addActionListener(a);
}
public void setInt1ButtonListener(ActionListener a) {
int1.addActionListener(a);
}
public void setInt2ButtonListener(ActionListener a) {
int2.addActionListener(a);
}
public void setEvalP1ButtonListener(ActionListener a) {
evalP1.addActionListener(a);
}
public void setEvalP2ButtonListener(ActionListener a) {
evalP2.addActionListener(a);
}
public void setRootP1ButtonListener(ActionListener a) {
rootP1.addActionListener(a);
}
public void setRootP2ButtonListener(ActionListener a) {
rootP2.addActionListener(a);
}
public void setGraphP1ButtonListener(ActionListener a) {
graphP1.addActionListener(a);
}
public void setGraphP2ButtonListener(ActionListener a) {
graphP2.addActionListener(a);
}
public JTextField getInput1() {
return input1;
}
public JTextField getInput2() {
return input2;
}
public JTextField getInputX() {
return inputX;
}
public JTextField getOutput() {
return output;
}
}